1. Field of the Invention
The present invention relates to data transfer apparatuses, network systems, and data transfer methods, and more particularly, to those suited to a digital-serial-data interface apparatus which performs arbitration for a bus use right prior to data transfer.
2. Description of the Related Art
There has been known the IEEE-1394 high-performance serial bus specification (hereinafter called the IEEE-1394 specification) as an interface specification which supports high-speed data transfer and real-time transfer and which is to be used for an interface for multimedia-data transfer.
In this IEEE-1394 specification, data transfer speeds of 100 Mbps (98.304 Mbps), 200 Mbps (196.608 Mbps), and 400 Mbps (393.216 Mbps) are defined, and a 1394 port having a higher transfer speed can be used at a lower transfer speed. With this feature, the data transfer speeds of 100 Mbps, 200 Mbps, and 400 Mbps can be used at the same time in an identical network.
The IEEE-1394 specification employs a transfer format conforming to a data/strobe link (DS-Link) encoding method, in which transfer data is converted to two signals, a data signal and a strobe signal for compensating for the data signal, and a clock is generated by applying an exclusive OR operation to the two signals, as shown in FIG. 1.
In addition, a cable 1 is specified, which has a structure in which two sets of twisted pairs (signal lines) 3 each shielded by a first shield layer 2 and power lines 4 are bundled and then shielded by a second shield layer 5, as shown by a cable structure illustrated in a sectional view of FIG. 2.
In the IEEE-1394 specification, two types of connection methods, a daisy chain and a node branch, can be used. In the daisy chain, up to 16 nodes (units having a 1394 port) can be connected and the maximum length between nodes is 4.5 m. As shown in FIG. 3, with the node branch being used together, up to 63 nodes (physical node addresses) can be connected.
In the IEEE-1394 specification, a cable having the above structure can be connected and disconnected while a unit is operating, namely, while the power is on. When a node is added or removed, a 1394 network is automatically re-structured. In this case, connected node units are automatically recognized and the IDs and arrangement of the connected units are managed by an interface.
FIG. 4 shows the components and protocol architecture of an interface conforming to the IEEE-1394 specification. The interface is divided into hardware and firmware.
The hardware is formed of a physical layer (PHY) and a link layer.
The physical layer directly drives signals conforming to the IEEE-1394 specification. The link layer is provided with a host interface and an interface with the physical layer.
The firmware includes a transaction layer formed of a management driver which applies actual operations to the interface conforming to the IEEE-1394 specification, and a management layer formed of a network-management driver conforming to the IEEE-1394 specification, called serial bus management (SBM).
An application layer includes software used by the user, and management software which interfaces the transaction layer and the management layer.
In the IEEE-1394 specification, transfer operations performed in a network are called sub-actions, and the following two types of sub-actions are specified. As the two sub-actions, asynchronous transfer mode called “asynchronous,” and synchronous transfer mode which assures a transfer frequency band, called “isochronous,” are defined.
Each sub-action is further divided into three parts. They are transfer states called “arbitration,” “packet transmission,” and “acknowledgement.” In the “isochronous” mode, the “acknowledgement” state is omitted.
In an asynchronous sub-action, asynchronous transfer is performed. In FIG. 5, which indicates transition states along the time axis in the transfer mode, a first sub-action gap indicates that a bus is idling. By monitoring the period of a sub-action gap, it is determined whether the previous transfer is finished and new transfer is possible.
When an idling state continues for more than a predetermined period, a node which wants to transfer data determines that the bus is available, and performs arbitration in order to obtain the bus control right. As shown in FIG. 6A and FIG. 6B, a node A serving as a root actually determines whether the bus is stopped.
Next, a node which has obtained the bus control right in arbitration executes data transfer, namely, packet transmission. After the data transfer, a node which has received the data sends back an ACK (ACK: receiving-confirmation return code) corresponding to the result of receiving of the transferred data to execute acknowledgement. With the execution of this application, both the transmission node and the receiving node can check by the contents of the ACK that the transfer was successfully performed.
Then, the state returns again to a sub-action gap, namely, a bus idling state, and the above-described transfer operations are repeated.
An isochronous sub-action basically performs transfer having the same structure as asynchronous transfer. As shown in FIG. 7, a higher priority is given to the execution of isochronous transfer than that of asynchronous transfer in an asynchronous sub-action.
Isochronous transfer in an isochronous sub-action follows a cycle-start packet issued by the root node at a frequency of about 8 kHz, and has a priority over asynchronous transfer in an asynchronous sub-action. Therefore, the mode is the transfer mode which assures a transfer frequency band, and real-time data transfer is implemented.
When a plurality of nodes perform isochronous transfer of real-time data at the same time, a channel ID for differentiating a content (transmitting node) is assigned to transfer data and only the required real-time data is received.
FIG. 8 shows the structure of an address space in the IEEE-1394 specification. The structure conforms to a CSR architecture (hereinafter called a CSR architecture) having 64-bit fixed addressing, defined in the ISO/IEC 13213 specification.
As shown in FIG. 8, higher 16 bits indicate a node ID in each address to give an address space to a node. The node ID is divided into a 10-bit bus number and a six-bit node number, and higher 10 bits indicate a bus ID and lower six bits indicate a physical ID. Since either field uses the value formed of all “1” bits for a special purpose, this addressing method gives 1023 buses and 63 separately addressable nodes for each bus.
In the above-described IEEE-1394 specification, however, various restrictions apply in terms of a scale and ease of handling, such as those in the number of connected units, a hop count, and a transfer frequency band. To relieve these restrictions and to expand a network scale, a 1394 bus bridge specification has been examined.
In a status control register employed in the IEEE-1394 specification, a 10-bit bus number field and a six-bit node number field are defined, and one bus is formed according to the node number field.
Among these fields, the node number field indicates 63 nodes in one bus and their behaviors are specified in the IEEE-1394 specification. In contrast, with the use of the 10-bit bus number field, when numbers are assigned to this field, up to 1032 buses are generated. A protocol for the entire 1394 network will be specified in the 1394 bus bridge specification.
A 1394 bridge has a function for propagating data over buses and needs to be disposed between buses. The 1394 bridge is formed of one set of two nodes called portals. Each portal performs processing for both the bus to which the portal is connected and the bus to which the other portal is connected.
FIG. 9 shows a 1394 network using such a 1394 bridge. A circle connected between 1394 buses indicate a 1394 bridge, and each semi-circle indicates a portal. In addition, as shown in FIG. 10, up to 1023 buses can be connected by using connections between buses with the use of 1394 bridges.
Two standardization operations have been currently performed for the 1394 bus bridge. One is that performed by an IEEE-1394.1 working group and its contents are disclosed as a draft. The other is that performed by a broadband radio access network (BRAN) project under European Telecommunication Standard Institute (ETSI) in Europe, and its contents are also disclosed as a draft.
The difference between them is that the IEEE-1394.1 working group has been examining the 1394 bus bridge for general use, in which up to 1023 buses can be used and the maximum hop count is 1022 whereas the BRAN project has been examining for home use with simplified functions, thereby generating a slight restriction on a topology structure.
A 1394 network of the BRAN specification supports up to 64 buses and up to two hops, and has a structure in which a number of buses (leaf buses) are connected around a central bus (branch bus) as shown in FIG. 11.
Bus-ID assignment is also simplified. As shown in FIG. 11, virtual IDs of 0 to 62 are assigned to portals connected to the branch bus. The virtual IDs are also used as the bus IDs of the leaf buses connected to the other-side portals, and a bus ID of 63 is assigned to the branch bus. Bus-ID assignment is automatically performed in this way.
The above-described BRAN specification for the 1394 bridge is simplified, and has an advantage that packet transfer can be performed without referring to a routing table in asynchronous packet transfer performed over a bridge.
Such a case will be specifically described by referring to FIG. 12. In a 1394 network having a structure like that shown in FIG. 12, it is assumed that asynchronous packet transfer is performed in a direction indicated by an arrow A and in a direction indicated by an arrow B. In packet transfer in the direction indicated by the arrow A, when the transmission destination bus ID of an asynchronous packet is not the own bus ID, namely, the transmission destination is other than the bus ID 2, the packet is forwarded in the direction indicated by the arrow A.
In packet transfer in the direction indicated by the arrow B, when the transmission destination bus ID of an asynchronous packet is equal to the bus ID of the bus connected there, namely, only when the packet is a packet bound for the bus ID 2, the packet is transmitted in the direction indicated by the arrow B.
As described above, asynchronous packet transfer is achieved over a bridge without using a routing table. However, what kind of processing is applied to a packet having the bus ID indicated by the transmission destination address, which does not exist on the current 1394 network, is not defined.
Therefore, when an asynchronous packet is sent to a destination which is not on the network, it is not reported to the transmission source that the packet is an error packet and acknowledgement is not returned. The transmission source may repeat meaningless re-transmission.